#pragma once
#include<iostream>
#include<vector>
#include<unordered_map>
#include<functional>
#include<unistd.h>


using func = std::function<void()>;
std::vector<func> calltasks;//任务表：存储各函数接口

std::unordered_map<int,std::string> desc;//任务编号及其文字描述


//任务：（各函数实现）
void readMySQL()
{
    std::cout << "【child process-" << getpid() << " 】 :执行访问数据库的任务\n" << std::endl;
}

void execuleUrl()
{
    std::cout << "【child process-" << getpid() << " 】 :执行url解析\n" << std::endl;
}

void cal()
{
    std::cout << "【child process-" << getpid() << " 】 :执行加密任务\n" << std::endl;
}

void save()
{
    std::cout << "【child process-" << getpid() << " 】 执行数据持久化任务\n" << std::endl;
}


//任务汇总
void Load()
{
    desc.insert({calltasks.size(),"readMySQL:读取数据库"});
    calltasks.push_back(readMySQL);

    desc.insert({calltasks.size(),"execuleUrl:进行url解析"});
    calltasks.push_back(execuleUrl);

    desc.insert({calltasks.size(),"cal:进行加密"});
    calltasks.push_back(cal);

    desc.insert({calltasks.size(),"saveL:进行数据持久化"});
    calltasks.push_back(save);

}


void showHandler()//用于展示目前所具有的任务信息及其编号
{
    for(auto &it: desc)
    {
        std::cout << it.first << "\t" << it.second << std::endl;
    }
}


int handlerSize()//用于获取函数数组的大小，即任务总数
{
    return calltasks.size();
}

